package chatBot.service;

import chatBot.dto.UserDto;
import chatBot.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

public interface UserService extends IService<User> {

    /**
     * 注册时需要提供手机号与密码，注册成功后生成JWT Token存入Redis中
     * @param
     * @param code  验证码
     * @param password 密码，使用passwordEncoder加密存储至数据库
     * @return Map，包含JWT token 与 用户信息
     */
    Map<String, Object> register(String userEmail, String code, String password);

    /**
     * 登录时提供验证码或密码，登录成功后生成JWT Token存入Redis中
     * @param
     * @pa
     * @param password 密码
     * @return Map，包含JWT token 与 用户信息
     */
    Map<String, Object> login(String userEmail, String code,String password);



    /**
     * 退出登录，删除Redis中的Token
     */
    void logout();


    void addTokens(Long userId, int tokens);


    User updateUserInfo(User user);


    UserDto getUserInfo(Long userId);
}
